中達電通PLC與松下變頻器通訊實例
2006/3/31 14:44:00
選用中達電通ES系列PLC,用通訊方式來改變松下VF0C系列變頻器的設定頻率,PLC端使用485口,無協議方式來模擬VF0C變頻器的通訊協議。
一、通訊協議
VF0C系列變頻器留有485通訊口,并提供內部通訊協議如下:
寫:% [局號] #WD [功能號] [起始地址] [結束地址] [數據] [BCC] \CR
讀:% [局號] #RD [功能號] [起始地址] [結束地址] [BCC] \CR
如果寫正確,返回:%01$WD BCC\CR
如果讀正確,返回:%01$RD [數據] BCC\CR
分別規定了字節數,在以下表格以寫數據為例做詳細說明:

在松下VF0C系列變頻器中,局號默認為01,通訊格式為9600、N、8、1,通訊方式是ASCII方式,數據為十六進制,存儲模式為8位模式。設定頻率的地址是DT237,而讀設定頻率的地址為DT133,而且在DT237和DT133的數據都是以0.01Hz為單位的。下面以寫頻率為例,來做詳細說明。
二、實例說明
假設要寫入的頻率是43.5Hz,那么需要寫入的數值應為10FE(4350),變頻器的存儲模式為8位模式,應從低位開始寫入,那么應該先寫FE后寫10。校驗碼是把從起始碼到數據碼所有的字節進行異或所得。
XOR:%01#WDD0023700237FE10=52(HEX)
那么得出以下所有通訊格式碼:
%01#WDD0023700237FE1052\CR
通訊方式是ASCII方式,數據是十六進制格式,那么做以下轉換,得出格式碼:
把這些格式碼按正確的次序發出,就可以把數據43.5HZ寫入到變頻器設定頻率DT237中。
三、梯形圖
在PLC中,無協議通訊也是從低位開始發送數據的,可選用8位模式和16位模式傳送,不同就在于發送數據寄存器中的8位數據還是16位數據,在這里以16位模式做說明。梯形圖如下:
把格式碼數據253031235744443030323337303032333745463130520D按照從低位到高位的順序依次存入到D0~D11中去,占用12個連續的數據寄存器,就是說有24個字節的數據。
設定通訊參數9600,N,8,1,ASCII方式,16位模式。
當M0接通一次,就可以發送一次數據,寫一次頻率。

四、程序優化
如果再加上讀頻率的程序,就可以做成小閉環,完成讀寫頻率的程序優化。
因為在寫頻率的數據發送成功后,可做延時3秒后讀頻率,在讀成功以后,把讀回的頻率數據和要寫入的頻率數據做比較,如果相等,則通訊程序停止,如果不相等,再執行寫頻率——>讀頻率——>比較。

一、通訊協議
VF0C系列變頻器留有485通訊口,并提供內部通訊協議如下:
寫:% [局號] #WD [功能號] [起始地址] [結束地址] [數據] [BCC] \CR
讀:% [局號] #RD [功能號] [起始地址] [結束地址] [BCC] \CR
如果寫正確,返回:%01$WD BCC\CR
如果讀正確,返回:%01$RD [數據] BCC\CR
分別規定了字節數,在以下表格以寫數據為例做詳細說明:

在松下VF0C系列變頻器中,局號默認為01,通訊格式為9600、N、8、1,通訊方式是ASCII方式,數據為十六進制,存儲模式為8位模式。設定頻率的地址是DT237,而讀設定頻率的地址為DT133,而且在DT237和DT133的數據都是以0.01Hz為單位的。下面以寫頻率為例,來做詳細說明。
二、實例說明
假設要寫入的頻率是43.5Hz,那么需要寫入的數值應為10FE(4350),變頻器的存儲模式為8位模式,應從低位開始寫入,那么應該先寫FE后寫10。校驗碼是把從起始碼到數據碼所有的字節進行異或所得。
XOR:%01#WDD0023700237FE10=52(HEX)
那么得出以下所有通訊格式碼:
%01#WDD0023700237FE1052\CR
通訊方式是ASCII方式,數據是十六進制格式,那么做以下轉換,得出格式碼:
把這些格式碼按正確的次序發出,就可以把數據43.5HZ寫入到變頻器設定頻率DT237中。
三、梯形圖
在PLC中,無協議通訊也是從低位開始發送數據的,可選用8位模式和16位模式傳送,不同就在于發送數據寄存器中的8位數據還是16位數據,在這里以16位模式做說明。梯形圖如下:
把格式碼數據253031235744443030323337303032333745463130520D按照從低位到高位的順序依次存入到D0~D11中去,占用12個連續的數據寄存器,就是說有24個字節的數據。
設定通訊參數9600,N,8,1,ASCII方式,16位模式。
當M0接通一次,就可以發送一次數據,寫一次頻率。

四、程序優化
如果再加上讀頻率的程序,就可以做成小閉環,完成讀寫頻率的程序優化。
因為在寫頻率的數據發送成功后,可做延時3秒后讀頻率,在讀成功以后,把讀回的頻率數據和要寫入的頻率數據做比較,如果相等,則通訊程序停止,如果不相等,再執行寫頻率——>讀頻率——>比較。


提交
查看更多評論